From 0080a146fc752e46caa0c7b260f7f934932463d6 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Wed, 2 Apr 2008 10:42:27 +0100 Subject: [PATCH] x86 firmware: Consolidate firmware common build rules. Also avoid overriding global optimisation default (-O1, -O2, etc.) Signed-off-by: Keir Fraser --- tools/firmware/Rules.mk | 15 +++++++++++++++ tools/firmware/extboot/Makefile | 12 ++---------- tools/firmware/hvmloader/Makefile | 12 ++---------- tools/firmware/hvmloader/acpi/Makefile | 12 ++---------- tools/firmware/rombios/32bit/Makefile | 8 +------- tools/firmware/rombios/32bit/tcgbios/Makefile | 8 +------- tools/tests/blowfish.mk | 8 ++++---- 7 files changed, 27 insertions(+), 48 deletions(-) create mode 100644 tools/firmware/Rules.mk diff --git a/tools/firmware/Rules.mk b/tools/firmware/Rules.mk new file mode 100644 index 0000000000..58b45dcec6 --- /dev/null +++ b/tools/firmware/Rules.mk @@ -0,0 +1,15 @@ +# Firmware is a 32-bit target +override XEN_TARGET_ARCH = x86_32 + +# User-supplied CFLAGS are not useful here. +CFLAGS := + +include $(XEN_ROOT)/tools/Rules.mk + +# Disable PIE/SSP if GCC supports them. They can break us. +CFLAGS += $(call cc-option,$(CC),-nopie,) +CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,) +CFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,) + +# Extra CFLAGS suitable for an embedded type of environment. +CFLAGS += -fno-builtin -msoft-float diff --git a/tools/firmware/extboot/Makefile b/tools/firmware/extboot/Makefile index fa2b0de17b..eec5831c3a 100644 --- a/tools/firmware/extboot/Makefile +++ b/tools/firmware/extboot/Makefile @@ -1,15 +1,7 @@ - -override XEN_TARGET_ARCH = x86_32 XEN_ROOT = ../../.. -CFLAGS := -I$(XEN_ROOT)/tools/libxc -I. -include $(XEN_ROOT)/tools/Rules.mk - -# Disable PIE/SSP if GCC supports them. They can break us. -CFLAGS += $(call cc-option,$(CC),-nopie,) -CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,) -CFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,) +include $(XEN_ROOT)/tools/firmware/Rules.mk -CFLAGS += -fno-builtin -O2 -msoft-float +CFLAGS += -I$(XEN_ROOT)/tools/libxc -I. .PHONY: all all: extboot.bin diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index 7373ff492f..3a5b801335 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -18,23 +18,15 @@ # Place - Suite 330, Boston, MA 02111-1307 USA. # -override XEN_TARGET_ARCH = x86_32 XEN_ROOT = ../../.. -CFLAGS := -include $(XEN_ROOT)/tools/Rules.mk +include $(XEN_ROOT)/tools/firmware/Rules.mk SUBDIRS := acpi # The HVM loader is started in 32-bit mode at the address below: LOADADDR = 0x100000 -# Disable PIE/SSP if GCC supports them. They can break us. -CFLAGS += $(call cc-option,$(CC),-nopie,) -CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,) -CFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,) - -CFLAGS += -fno-builtin -O2 -msoft-float -CFLAGS += $(CFLAGS_include) -I. +CFLAGS += $(CFLAGS_include) -I. SRCS = hvmloader.c mp_tables.c util.c smbios.c 32bitbios_support.c OBJS = $(patsubst %.c,%.o,$(SRCS)) diff --git a/tools/firmware/hvmloader/acpi/Makefile b/tools/firmware/hvmloader/acpi/Makefile index 79a49541ce..8ef4d58a7a 100644 --- a/tools/firmware/hvmloader/acpi/Makefile +++ b/tools/firmware/hvmloader/acpi/Makefile @@ -15,10 +15,8 @@ # Place - Suite 330, Boston, MA 02111-1307 USA. # -override XEN_TARGET_ARCH = x86_32 XEN_ROOT = ../../../.. -CFLAGS := -include $(XEN_ROOT)/tools/Rules.mk +include $(XEN_ROOT)/tools/firmware/Rules.mk C_SRC = build.c dsdt.c static_tables.c H_SRC = $(wildcard *.h) @@ -27,13 +25,7 @@ OBJS = $(patsubst %.c,%.o,$(C_SRC)) IASL_VER = acpica-unix-20060707 IASL_URL = http://developer.intel.com/technology/iapc/acpi/downloads/$(IASL_VER).tar.gz -# Disable PIE/SSP if GCC supports them. They can break us. -CFLAGS += $(call cc-option,$(CC),-nopie,) -CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,) -CFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,) - -CFLAGS += -fno-builtin -O2 -msoft-float -CFLAGS += -I. -I.. $(CFLAGS_include) +CFLAGS += -I. -I.. $(CFLAGS_include) vpath iasl $(PATH) all: acpi.a diff --git a/tools/firmware/rombios/32bit/Makefile b/tools/firmware/rombios/32bit/Makefile index 90d86db0a9..f42d7f39b5 100644 --- a/tools/firmware/rombios/32bit/Makefile +++ b/tools/firmware/rombios/32bit/Makefile @@ -1,16 +1,10 @@ - -override XEN_TARGET_ARCH = x86_32 XEN_ROOT = ../../../.. -CFLAGS := -include $(XEN_ROOT)/tools/Rules.mk +include $(XEN_ROOT)/tools/firmware/Rules.mk SOURCES = util.c TARGET = 32bitbios_flat.h -CFLAGS += -fno-builtin -O2 -msoft-float -nostdlib CFLAGS += -I../ -DGCC_PROTOS -CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,) -CFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,) SUBDIRS = tcgbios diff --git a/tools/firmware/rombios/32bit/tcgbios/Makefile b/tools/firmware/rombios/32bit/tcgbios/Makefile index 9d0aa5ed0c..e272f288f6 100644 --- a/tools/firmware/rombios/32bit/tcgbios/Makefile +++ b/tools/firmware/rombios/32bit/tcgbios/Makefile @@ -1,16 +1,10 @@ - -override XEN_TARGET_ARCH = x86_32 XEN_ROOT = ../../../../.. -CFLAGS := -include $(XEN_ROOT)/tools/Rules.mk +include $(XEN_ROOT)/tools/firmware/Rules.mk TARGET = tcgbiosext.o FILES = tcgbios tpm_drivers OBJECTS = $(foreach f,$(FILES),$(f).o) -CFLAGS += -fno-builtin -O2 -msoft-float -nostdlib -CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,) -CFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,) CFLAGS += -I../ -I../../ -DGCC_PROTOS .PHONY: all clean diff --git a/tools/tests/blowfish.mk b/tools/tests/blowfish.mk index ecad7836a4..dfd7bd2be8 100644 --- a/tools/tests/blowfish.mk +++ b/tools/tests/blowfish.mk @@ -5,11 +5,11 @@ CFLAGS := include $(XEN_ROOT)/tools/Rules.mk # Disable PIE/SSP if GCC supports them. They can break us. -CFLAGS += $(call cc-option,$(CC),-nopie,) -CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,) -CFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,) +CFLAGS += $(call cc-option,$(CC),-nopie,) +CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,) +CFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,) -CFLAGS += -fno-builtin -O2 -msoft-float +CFLAGS += -fno-builtin -msoft-float .PHONY: all all: blowfish.bin -- 2.30.2